import { defineStore } from 'pinia';
import { getToken, removeToken, setToken } from '../utils/index.js';
import { getLogin,getUserInfo } from '../api/index';


/**
 * 用户信息状态管理
 * 用于管理用户的登录状态、个人信息等
 */
export const useUserInfoStore = defineStore('userInfo', {

	/**
	 * 状态初始值
	 * @returns {Object} 包含token、昵称和用户ID的对象
	 */
	state: () => ({
    token: getToken(),
    nickName: '',
    uid: '',
  }),

	actions: {
    /**
     * 用户登录
     * @param {Object} loginForm - 登录表单数据
     * @returns {Promise<void>}
     */
    async login (loginForm) {
      // 发送登陆的请求
      const result = await getLogin(loginForm)
      // 请求成功后, 取出token保存  pinia和local中
      const token = result.token
      
      this.token = token
      setToken(token)
    },
    
    /**
     * 获取用户信息
     * @returns {Promise<void>}
     */
    async getInfo () {
      const result = await getUserInfo()
      this.nickName = result.loginUser.nickName
      this.uid = result.loginUser.uid
    },
    
    /**
     * 初始化用户信息（退出登录）
     * @returns {void}
     */
    initUserInfo(){
      removeToken()
      this.nickName = ""
      this.uid = ""
      // console.log('1111111111');
      
    }

  },
  

});